// 从Node.js的'url'模块中导入函数
import { fileURLToPath, URL } from 'node:url';

// 从vite包中导入配置函数
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; // 导入Vite的Vue.js插件
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'


// 定义并导出Vite的配置
export default defineConfig({
  plugins: [
    vue(), // 使用Vue插件
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  resolve: {
    alias: {
      // 创建一个别名'@'指向'src'目录，便于在项目中导入文件
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  server: {
    host: '0.0.0.0', // 设置服务器监听所有网络接口
    port: process.env.PORT ? Number(process.env.PORT) : 1003, // 如果环境变量中有PORT则使用，否则默认为1003
    open: false, // 不自动打开浏览器
    proxy: {
      // 配置开发环境下的代理规则
      '/file': {
        target: process.env.VITE_API_BASE_URL, 
        // 将`/file`开头的请求代理到`http://localhost:8080`
        changeOrigin: true, // 对于虚拟托管的站点必需
        rewrite: path => path.replace(/^\/file\//, '/'), // 在转发请求前重写路径，去掉`/file/`
      },
    },
  }
})
